The demand for real-time multimedia streaming is steadily increasing. In order to increase the scale of network broadcast using real-time multimedia streaming, multiple servers can be used to provide the same multimedia stream to a large number of clients. Clients are directed to one of a multiplicity of servers to obtain the multimedia stream in real-time.
One method known in the art that seeks to increase the processing capacity at hot sites on the Internet is to create a cluster of computing nodes (also called a multi-node cluster) to handle the load. The Internet refers to the collection of networks and gateways that use the Transmission Control Protocol/Internet Protocol (TCP/IP) suite of protocols. TCP/IP is a well known protocol that was developed by the Department of Defense for communications between computers (see e.g., D. E. Comer, "Internetworking with TCP/IP, Principals, Protocols and Architecture,"Prentice Hall, which is hereby incorporated by reference herein in its entirety). The multi-node cluster is (encapsulated) made to appear as one entity to clients, so that the added capacity provided by the multi-node cluster is transparent to clients. Client requests are distributed among nodes in the multi-node cluster. Many load balancing techniques are known in the art; see for example, Dias et al., "A Scalable and Highly Available Web Server", Proc. 41st IEEE Computer Society Intl. Conf. (COMPCON) 1996, Technologies for the Information Superhighway, pp. 85-92, February 1996; see also U.S. Pat. No. 5,371,852, issued Dec. 6, 1994 to Attanasio et al., entitled "Method and Apparatus for Making a Cluster of Computers Appear as a Single Host."
Research and development has also been increasing in both the areas of audio/video streaming and video conferencing. Video conferencing differs from audio and video streaming in that the communication is bi-directional and end-to-end delays must be very low (&lt;200 ms) for interactive communication. In fact, video conferencing standards are quite mature and have emerged from both the International Telecommunication Union (ITU), in the form of the H.3xx standards; and the Internet Engineering Task Force (IETF) in conjunction with the multicast backbone (MBONE). In general, the two camps use the same audio and video compression standards (defined by the ITU), but differ in their networking protocol specifications.
Audio/video streaming differs technically from its video conferencing counterpart in that it can afford greater flexibility in end-to-end delays when being transmitted across a network, and in the fact that stored content may be manipulated off-line with additional processing. These begin to merge when one considers live audio and video streaming applications (e.g., Internet, radio, and TV). The most relevant of the ITU standards is H.323, which defines audio/visual services over LANs for which quality of service cannot be guaranteed (see e.g., "Draft Recommendation H.323: Visual Telephone Systems and Equipment for Local Area Networks Which Provide A Non-Guaranteed Quality of Service," (May 28, 1996), which is hereby incorporated herein by reference in its entirety). This standard specifies a variety of audio and video coders and decoders (CODECs) as well as signaling protocols to negotiate capabilities and setup and manage connections. The underlying transport specified is the Real-time Transport Protocol (RTP). This protocol, defined by the IETF, is intended to provide a means of transporting real-time streams over Internet Protocol (IP) networks. A new protocol, Real Time Streaming Protocol (RTSP), more directly addresses the issues of delivering and managing multimedia streams, (see e.g., "Real Time Streaming Protocol (RTSP)" IETF Request for Comments: 2326 (April 1998), which is hereby incorporated herein by reference in its entirety). Clearly, this area is still evolving as new protocols are being defined and refined to satisfy a wide range of emerging networked multimedia applications.
Streaming technology can be used to deliver live audio and video data, where the clips arrive in streams so that users can begin to view or hear the clip before the download is complete. Conventional Internet traffic is short-lived, with a duration ranging from milliseconds to seconds, and bursty. In contrast, real-time multimedia streaming is lengthy, with a duration ranging from minutes to even hours, with low continuous bandwidth requirements. Server and/or network failures will terminate the real-time streaming process, and the stream from a given server will be interrupted for a particular session. This interruption may, in many cases, only be detected at the client. Thus, a need exists for a client-based means to automatically switch to an alternate server in order to continue receiving a multimedia stream in an uninterrupted fashion in the event of a service degradation, load imbalance, or failure. The present invention addresses such a need.
One known method in the art for increasing scalability for real-time multimedia streaming is through the use of so-called "reflector" technology. The reflector technology is used in applications--such as IBM's BAMBA.TM., Vosaic's MEDlASERVER.TM. and White Pine Software's CU-SeeMe.TM.--to provide real-time audio and video streaming over the Internet. Reflectors are servers that manage the distribution of audio and video streams to their receivers. They can be cascaded and scaled to handle increased demand for a broadcast. Multimedia streams are replicated at each reflector and delivered to multiple receivers. By simply adding more reflectors, a broadcast is capable of supporting large numbers of clients.
A key problem with the basic reflector technology is that the resulting workload across reflectors is poorly balanced and network bandwidth can be wasted. For example, some reflectors can have a large number of clients simultaneously connecting to it while others are serving only a few clients. This causes the workload across reflectors to be highly unbalanced and can cause performance degradation due to server and/or network overloads. Another problem with the basic reflector approach, is that in the event that a reflector (server) fails or is overloaded, there is no automatic mechanism for redirecting a client to another server where they will continue receiving the multimedia stream. The present invention addresses these problems.